package com.itheima.homeweek;

import java.io.File;

public class HomeWeek03 {
    /*已知File类中存在一个方法 long length() 可以获取文件的大小，但是不能直接获取文件夹的大小
    现要求：定义方法接收一个文件夹的File对象，获取文件夹的实际大小（提示：将文件夹中所有的文件大小加起来就是整个文件夹的大小）*/
    public static void main(String[] args) {
        File dir = new File("D:\\demo");//输入路径
        System.out.println("该文件夹大小为："+getSize(dir)+"字节");
    }

    private static long getSize(File dir) {
        long size = 0;
        File[] files = dir.listFiles();//获得该文件夹的文件集合
        if(files != null){//路径存在
            if(files.length == 0){//文件长度为0则表示空文件夹
                System.out.println("这是一个空文件夹");//提示空文件夹
                return 0;
            }
            for (File file : files) {//遍历
                if(file.isFile()){//当前为文件
                    size += file.length();//把文件长度加到size上
                }else{
                    size += getSize(file);//当前为文件夹则递归调用
                }
            }
        }else{
            System.out.println("该文件夹不存在");//提示路径错误
        }
        return size;
    }
}
